On MQTT Message
Abonniere (subscribe) ein MQTT Topic und reagiere auf eingehende Nachrichten auf diesem Topic.
Settings
topic
Das MQTT Topic das abonniert wird um auf eingehende Nachrichten zu reagieren.
Nutze wildcard topics (+
und #
) um auf Nachrichten in verschiedenen topics reagieren zu können.
Wenn du ein wildcard topic definierst, kannst du in der if condition mit topic contains festlegen auf welches topic sich die jeweilige Bedingung bezieht.
if
Überprüfe eingehende Nachrichten auf dem abonnierten topic und löse ggf. den next state
aus.
Im Kapitel Bedingungen abfragen mit conditions findest du genauer heraus, wie du die eingehende Nachricht abfragen kannst.
Der value
der Bedingung ist dabei jeweils die eingehende Nachricht.
field
Nutze field
um einen bestimmten Wert innerhalb einer JSON Message abzufragen. Du kannst Punkt Notation verwenden um tieferliegende Werte in der JSON Message anzugeben.
Um in der folgenden JSON Message den "humidity" Wert abzufragen
Kannst du unter field
sensor.humidity
angeben.
topic contains
Wenn du ein Wildcard topic angegeben hast, kannst du mit topic contains filtern auf welches Topic in dieser condition reagiert werden soll.
Wenn das Topic der Message den topic contains Wert enthält, wird die Bedingung abgefragt. topic contains filtert dabei immer das vollständige Topic.
Du kannst Regular Expression Syntax verwenden um den Filter genauer festzulegen.
Zum Beispiel kannst du so abfragen ob das Topic einen Abschnitt nur am Ende enthält. Eine Message mit Topic garden/apple-tree/sensor/ph-value
würde etwa mit dem folgenden topic contains abgefangen:
ph-value$
else
Lege den next state
fest, der ausgelöst wird, wenn keine der if
Bedingungen auf die eingegangene Nachricht zugetroffen hat oder wenn du keine if Bedingung angegeben hast.
Wenn du keine if Bedingung definiert hast, wird bei jeder Nachricht, die auf dem angegebenen topic oder einem der Topics die der wildcard entsprechen empfangen wird empfangen wird, in den next state
gewechselt.
Action Daten
Du kannst auf die zuletzt Eingegangene MQTT Message über die On MQTT Message action data variable zugreifen. Nutze etwa:
[[state.MyState.onMQTTMessage_1.message]]
Um auf die zuletzt eingegangenen Message der obersten On MQTT Message action im State MyState zuzugreifen.
match
Die Message oder der Teil der Message, die eine if Bedingung in der On MQTT Message action erfüllt hat.
Beispiel:
part of the message
message
Gesamte zuletzt eingegangene Message auf dem Topic, dass die On MQTT Message action abonniert hat.
Beispiel:
This is not the only part of the message
topic
Genaues Topic als einzelner string, der zuletzt eingegangenen Message, auf dem Topic, dass die On MQTT Message action abonniert hat.
Beispiel:
some/topic
topic_levels
Eine Liste aller einzelnen Topic levels, der zuletzt eingegangenen Message, auf dem Topic, dass die On MQTT Message action abonniert hat.
Beispiel:
["some", "topic"]
topic_contains
Der Teil des Topic, der mit topic contains gematcht wurde.
Beispiel:
partof/topic
retain
Gibt an, ob die Nachricht retained wurde, also vom Broker durch die subscription nachträglich gesendet wurde.
Boolean Wert (true
/false
)
qos
Gibt den Quality of Service Level der Message an.
Kann Ganzzahlwert 0
, 1
oder 2
sein.
dup
Wenn dup true
ist, handelt es sich um ein Duplikat.
length
Die Zeichen Anzahl der Message
Beispiel
Sieh dir das Beispiel im MQTT Plugin Eintrag an.